package com.kmxd.ams.client.event.statistices;

import com.kmxd.ams.client.event.AmsEvent;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * 档案利用统计
 *
 * @author nickbi
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString(callSuper = true)
public class StatisticsUsingOpEvent extends AmsEvent {

  /** 公司ID */
  @Schema(description = "公司ID")
  private Long comId;

  /** 全宗ID */
  @Schema(description = "全宗ID")
  private Long fondsId;

  /** 操作人IP地址 */
  @Schema(description = "操作人IP地址")
  private String ip;

  /** 操作人名称 */
  @Schema(description = "操作人名称")
  private String userName;

  /** 所属部门ID */
  @Schema(description = "所属部门ID")
  private Long deptId;

  /** 所属部门名称 */
  @Schema(description = "所属部门名称")
  private String deptName;

  /** 档案主键，案卷或文档的 */
  @Schema(description = "档案主键，案卷或文档的")
  private Long archId;

  /** 表名称。用于可能的关联。 */
  @Schema(description = "表名称。用于可能的关联。")
  private String tableId;

  /** 档案门类 */
  @Schema(description = "档案门类")
  private Long archTypeId;

  /** 档案门类名称 */
  @Schema(description = "档案门类名称")
  private String archTypeName;

  /** 案卷或文档（用于统计卷次和件次） */
  @Schema(description = "案卷或文档（用于统计卷次和件次）")
  private String archLevel;

  /** 档号 */
  @Schema(description = "档号")
  private String archCode;

  /** 题名 */
  @Schema(description = "题名")
  private String archTitle;

  /** 密级 */
  @Schema(description = "密级")
  private String security;

  /** 操作-利用方式--浏览 1、打印 2、下载 3、下载原文 4、现场阅览 5、借出 6、复制复印 7 */
  @Schema(description = "操作-利用方式--浏览 1、打印 2、下载 3、下载原文 4、现场阅览 5、借出 6、复制复印 7")
  private Integer op;

  /** 操作-利用方式--浏览 1、打印 2、下载 3、下载原文 4、现场阅览 5、借出 6、复制外发 7 */
  @Schema(description = "操作-利用方式--浏览 1、打印 2、下载 3、下载原文 4、现场阅览 5、借出 6、复制外发 7")
  private Integer realOp;

  /** 业务状态：0历史行为 或 1计划任务 */
  @Schema(description = "业务状态：0历史行为 或 1计划任务")
  private Integer businessType;

  /** 利用目的 1，编史修志 2、工作考察 3、宣传教育 4、学术研究 5、经济建设 6、其他7 */
  @Schema(description = "利用目的 1，编史修志 2、工作考察 3、宣传教育 4、学术研究 5、经济建设 6、其他7")
  private Integer usingPurpose;

  /** 本单位 1 or外单位 2 */
  @Schema(description = "本单位 1 or外单位 2")
  private Integer usingSource;

  /** 自有权限 1、临时授权 2 */
  @Schema(description = "自有权限 1、临时授权 2")
  private Integer usingAuth;

  /** 已达目的 1、未达目的 2 */
  @Schema(description = "已达目的 1、未达目的 2")
  private Integer usingResult;
}
